package mx.com.asteca.util;

import java.util.HashMap;
import java.util.Map;

/**
 * Clase de utileria para las extensiones y MIME Mapping de los archivos
 * @author Jorge Amaro Coria
 * @version 1.0
 * @since 1.0
 *
 */
public class FileExtensionUtil{

	private Map<String,String>map;
	
	private static class FileExtensionHolder{
		static final FileExtensionUtil instance = new FileExtensionUtil();
	}
	
	
	/**
	 * Obtiene la instancia de esta clase
	 * @return
	 */
	public static FileExtensionUtil getInstance(){
		return FileExtensionHolder.instance;
	}
	
	/**
	 * Obtiene el valor MIME a partir de la extension
	 * @param extension
	 * @return
	 */
	public String getMimeMapping(String extension){
		if(!extension.contains(".")){
			extension = "."+extension;
		}
		String entry = map.get(extension);
		return entry;
	}
	
	private FileExtensionUtil(){
		map=new HashMap<String,String>();
	   
		map.put("	.x3d	".trim(), "	application/vnd.hzn-3d-crossword	".trim());
		map.put("	.3gp	".trim(), "	video/3gpp	".trim());
		map.put("	.3g2	".trim(), "	video/3gpp2	".trim());
		map.put("	.mseq	".trim(), "	application/vnd.mseq	".trim());
		map.put("	.pwn	".trim(), "	application/vnd.3m.post-it-notes	".trim());
		map.put("	.plb	".trim(), "	application/vnd.3gpp.pic-bw-large	".trim());
		map.put("	.psb	".trim(), "	application/vnd.3gpp.pic-bw-small	".trim());
		map.put("	.pvb	".trim(), "	application/vnd.3gpp.pic-bw-var	".trim());
		map.put("	.tcap	".trim(), "	application/vnd.3gpp2.tcap	".trim());
		map.put("	.7z	".trim(), "	application/x-7z-compressed	".trim());
		map.put("	.abw	".trim(), "	application/x-abiword	".trim());
		map.put("	.ace	".trim(), "	application/x-ace-compressed	".trim());
		map.put("	.acc	".trim(), "	application/vnd.americandynamics.acc	".trim());
		map.put("	.acu	".trim(), "	application/vnd.acucobol	".trim());
		map.put("	.atc	".trim(), "	application/vnd.acucorp	".trim());
		map.put("	.adp	".trim(), "	audio/adpcm	".trim());
		map.put("	.aab	".trim(), "	application/x-authorware-bin	".trim());
		map.put("	.aam	".trim(), "	application/x-authorware-map	".trim());
		map.put("	.aas	".trim(), "	application/x-authorware-seg	".trim());
		map.put("	.air	".trim(), "	application/vnd.adobe.air-application-installer-package+zip	".trim());
		map.put("	.swf	".trim(), "	application/x-shockwave-flash	".trim());
		map.put("	.fxp	".trim(), "	application/vnd.adobe.fxp	".trim());
		map.put("	.pdf	".trim(), "	application/pdf	".trim());
		map.put("	.ppd	".trim(), "	application/vnd.cups-ppd	".trim());
		map.put("	.dir	".trim(), "	application/x-director	".trim());
		map.put("	.xdp	".trim(), "	application/vnd.adobe.xdp+xml	".trim());
		map.put("	.xfdf	".trim(), "	application/vnd.adobe.xfdf	".trim());
		map.put("	.aac	".trim(), "	audio/x-aac	".trim());
		map.put("	.ahead	".trim(), "	application/vnd.ahead.space	".trim());
		map.put("	.azf	".trim(), "	application/vnd.airzip.filesecure.azf	".trim());
		map.put("	.azs	".trim(), "	application/vnd.airzip.filesecure.azs	".trim());
		map.put("	.azw	".trim(), "	application/vnd.amazon.ebook	".trim());
		map.put("	.ami	".trim(), "	application/vnd.amiga.ami	".trim());
		map.put("	N/A	".trim(), "	application/andrew-inset	".trim());
		map.put("	.apk	".trim(), "	application/vnd.android.package-archive	".trim());
		map.put("	.cii	".trim(), "	application/vnd.anser-web-certificate-issue-initiation	".trim());
		map.put("	.fti	".trim(), "	application/vnd.anser-web-funds-transfer-initiation	".trim());
		map.put("	.atx	".trim(), "	application/vnd.antix.game-component	".trim());
		map.put("	.mpkg	".trim(), "	application/vnd.apple.installer+xml	".trim());
		map.put("	.aw	".trim(), "	application/applixware	".trim());
		map.put("	.les	".trim(), "	application/vnd.hhe.lesson-player	".trim());
		map.put("	.swi	".trim(), "	application/vnd.aristanetworks.swi	".trim());
		map.put("	.s	".trim(), "	text/x-asm	".trim());
		map.put("	.atomcat	".trim(), "	application/atomcat+xml	".trim());
		map.put("	.atomsvc	".trim(), "	application/atomsvc+xml	".trim());
		map.put("	.atom, .xml	".trim(), "	application/atom+xml	".trim());
		map.put("	.ac	".trim(), "	application/pkix-attr-cert	".trim());
		map.put("	.aif	".trim(), "	audio/x-aiff	".trim());
		map.put("	.avi	".trim(), "	video/x-msvideo	".trim());
		map.put("	.aep	".trim(), "	application/vnd.audiograph	".trim());
		map.put("	.dxf	".trim(), "	image/vnd.dxf	".trim());
		map.put("	.dwf	".trim(), "	model/vnd.dwf	".trim());
		map.put("	.par	".trim(), "	text/plain-bas	".trim());
		map.put("	.bcpio	".trim(), "	application/x-bcpio	".trim());
		map.put("	.bin	".trim(), "	application/octet-stream	".trim());
		map.put("	.bmp	".trim(), "	image/bmp	".trim());
		map.put("	.torrent	".trim(), "	application/x-bittorrent	".trim());
		map.put("	.cod	".trim(), "	application/vnd.rim.cod	".trim());
		map.put("	.mpm	".trim(), "	application/vnd.blueice.multipass	".trim());
		map.put("	.bmi	".trim(), "	application/vnd.bmi	".trim());
		map.put("	.sh	".trim(), "	application/x-sh	".trim());
		map.put("	.btif	".trim(), "	image/prs.btif	".trim());
		map.put("	.rep	".trim(), "	application/vnd.businessobjects	".trim());
		map.put("	.bz	".trim(), "	application/x-bzip	".trim());
		map.put("	.bz2	".trim(), "	application/x-bzip2	".trim());
		map.put("	.csh	".trim(), "	application/x-csh	".trim());
		map.put("	.c	".trim(), "	text/x-c	".trim());
		map.put("	.cdxml	".trim(), "	application/vnd.chemdraw+xml	".trim());
		map.put("	.css	".trim(), "	text/css	".trim());
		map.put("	.cdx	".trim(), "	chemical/x-cdx	".trim());
		map.put("	.cml	".trim(), "	chemical/x-cml	".trim());
		map.put("	.csml	".trim(), "	chemical/x-csml	".trim());
		map.put("	.cdbcmsg	".trim(), "	application/vnd.contact.cmsg	".trim());
		map.put("	.cla	".trim(), "	application/vnd.claymore	".trim());
		map.put("	.c4g	".trim(), "	application/vnd.clonk.c4group	".trim());
		map.put("	.sub	".trim(), "	image/vnd.dvb.subtitle	".trim());
		map.put("	.cdmia	".trim(), "	application/cdmi-capability	".trim());
		map.put("	.cdmic	".trim(), "	application/cdmi-container	".trim());
		map.put("	.cdmid	".trim(), "	application/cdmi-domain	".trim());
		map.put("	.cdmio	".trim(), "	application/cdmi-object	".trim());
		map.put("	.cdmiq	".trim(), "	application/cdmi-queue	".trim());
		map.put("	.c11amc	".trim(), "	application/vnd.cluetrust.cartomobile-config	".trim());
		map.put("	.c11amz	".trim(), "	application/vnd.cluetrust.cartomobile-config-pkg	".trim());
		map.put("	.ras	".trim(), "	image/x-cmu-raster	".trim());
		map.put("	.dae	".trim(), "	model/vnd.collada+xml	".trim());
		map.put("	.csv	".trim(), "	text/csv	".trim());
		map.put("	.cpt	".trim(), "	application/mac-compactpro	".trim());
		map.put("	.wmlc	".trim(), "	application/vnd.wap.wmlc	".trim());
		map.put("	.cgm	".trim(), "	image/cgm	".trim());
		map.put("	.ice	".trim(), "	x-conference/x-cooltalk	".trim());
		map.put("	.cmx	".trim(), "	image/x-cmx	".trim());
		map.put("	.xar	".trim(), "	application/vnd.xara	".trim());
		map.put("	.cmc	".trim(), "	application/vnd.cosmocaller	".trim());
		map.put("	.cpio	".trim(), "	application/x-cpio	".trim());
		map.put("	.clkx	".trim(), "	application/vnd.crick.clicker	".trim());
		map.put("	.clkk	".trim(), "	application/vnd.crick.clicker.keyboard	".trim());
		map.put("	.clkp	".trim(), "	application/vnd.crick.clicker.palette	".trim());
		map.put("	.clkt	".trim(), "	application/vnd.crick.clicker.template	".trim());
		map.put("	.clkw	".trim(), "	application/vnd.crick.clicker.wordbank	".trim());
		map.put("	.wbs	".trim(), "	application/vnd.criticaltools.wbs+xml	".trim());
		map.put("	.cryptonote	".trim(), "	application/vnd.rig.cryptonote	".trim());
		map.put("	.cif	".trim(), "	chemical/x-cif	".trim());
		map.put("	.cmdf	".trim(), "	chemical/x-cmdf	".trim());
		map.put("	.cu	".trim(), "	application/cu-seeme	".trim());
		map.put("	.cww	".trim(), "	application/prs.cww	".trim());
		map.put("	.curl	".trim(), "	text/vnd.curl	".trim());
		map.put("	.dcurl	".trim(), "	text/vnd.curl.dcurl	".trim());
		map.put("	.mcurl	".trim(), "	text/vnd.curl.mcurl	".trim());
		map.put("	.scurl	".trim(), "	text/vnd.curl.scurl	".trim());
		map.put("	.car	".trim(), "	application/vnd.curl.car	".trim());
		map.put("	.pcurl	".trim(), "	application/vnd.curl.pcurl	".trim());
		map.put("	.cmp	".trim(), "	application/vnd.yellowriver-custom-menu	".trim());
		map.put("	.dssc	".trim(), "	application/dssc+der	".trim());
		map.put("	.xdssc	".trim(), "	application/dssc+xml	".trim());
		map.put("	.deb	".trim(), "	application/x-debian-package	".trim());
		map.put("	.uva	".trim(), "	audio/vnd.dece.audio	".trim());
		map.put("	.uvi	".trim(), "	image/vnd.dece.graphic	".trim());
		map.put("	.uvh	".trim(), "	video/vnd.dece.hd	".trim());
		map.put("	.uvm	".trim(), "	video/vnd.dece.mobile	".trim());
		map.put("	.uvu	".trim(), "	video/vnd.uvvu.mp4	".trim());
		map.put("	.uvp	".trim(), "	video/vnd.dece.pd	".trim());
		map.put("	.uvs	".trim(), "	video/vnd.dece.sd	".trim());
		map.put("	.uvv	".trim(), "	video/vnd.dece.video	".trim());
		map.put("	.dvi	".trim(), "	application/x-dvi	".trim());
		map.put("	.seed	".trim(), "	application/vnd.fdsn.seed	".trim());
		map.put("	.dtb	".trim(), "	application/x-dtbook+xml	".trim());
		map.put("	.res	".trim(), "	application/x-dtbresource+xml	".trim());
		map.put("	.ait	".trim(), "	application/vnd.dvb.ait	".trim());
		map.put("	.svc	".trim(), "	application/vnd.dvb.service	".trim());
		map.put("	.eol	".trim(), "	audio/vnd.digital-winds	".trim());
		map.put("	.djvu	".trim(), "	image/vnd.djvu	".trim());
		map.put("	.dtd	".trim(), "	application/xml-dtd	".trim());
		map.put("	.mlp	".trim(), "	application/vnd.dolby.mlp	".trim());
		map.put("	.wad	".trim(), "	application/x-doom	".trim());
		map.put("	.dpg	".trim(), "	application/vnd.dpgraph	".trim());
		map.put("	.dra	".trim(), "	audio/vnd.dra	".trim());
		map.put("	.dfac	".trim(), "	application/vnd.dreamfactory	".trim());
		map.put("	.dts	".trim(), "	audio/vnd.dts	".trim());
		map.put("	.dtshd	".trim(), "	audio/vnd.dts.hd	".trim());
		map.put("	.dwg	".trim(), "	image/vnd.dwg	".trim());
		map.put("	.geo	".trim(), "	application/vnd.dynageo	".trim());
		map.put("	.es	".trim(), "	application/ecmascript	".trim());
		map.put("	.mag	".trim(), "	application/vnd.ecowin.chart	".trim());
		map.put("	.mmr	".trim(), "	image/vnd.fujixerox.edmics-mmr	".trim());
		map.put("	.rlc	".trim(), "	image/vnd.fujixerox.edmics-rlc	".trim());
		map.put("	.exi	".trim(), "	application/exi	".trim());
		map.put("	.mgz	".trim(), "	application/vnd.proteus.magazine	".trim());
		map.put("	.epub	".trim(), "	application/epub+zip	".trim());
		map.put("	.eml	".trim(), "	message/rfc822	".trim());
		map.put("	.nml	".trim(), "	application/vnd.enliven	".trim());
		map.put("	.xpr	".trim(), "	application/vnd.is-xpr	".trim());
		map.put("	.xif	".trim(), "	image/vnd.xiff	".trim());
		map.put("	.xfdl	".trim(), "	application/vnd.xfdl	".trim());
		map.put("	.emma	".trim(), "	application/emma+xml	".trim());
		map.put("	.ez2	".trim(), "	application/vnd.ezpix-album	".trim());
		map.put("	.ez3	".trim(), "	application/vnd.ezpix-package	".trim());
		map.put("	.fst	".trim(), "	image/vnd.fst	".trim());
		map.put("	.fvt	".trim(), "	video/vnd.fvt	".trim());
		map.put("	.fbs	".trim(), "	image/vnd.fastbidsheet	".trim());
		map.put("	.fe_launch	".trim(), "	application/vnd.denovo.fcselayout-link	".trim());
		map.put("	.f4v	".trim(), "	video/x-f4v	".trim());
		map.put("	.flv	".trim(), "	video/x-flv	".trim());
		map.put("	.fpx	".trim(), "	image/vnd.fpx	".trim());
		map.put("	.npx	".trim(), "	image/vnd.net-fpx	".trim());
		map.put("	.flx	".trim(), "	text/vnd.fmi.flexstor	".trim());
		map.put("	.fli	".trim(), "	video/x-fli	".trim());
		map.put("	.ftc	".trim(), "	application/vnd.fluxtime.clip	".trim());
		map.put("	.fdf	".trim(), "	application/vnd.fdf	".trim());
		map.put("	.f	".trim(), "	text/x-fortran	".trim());
		map.put("	.mif	".trim(), "	application/vnd.mif	".trim());
		map.put("	.fm	".trim(), "	application/vnd.framemaker	".trim());
		map.put("	.fh	".trim(), "	image/x-freehand	".trim());
		map.put("	.fsc	".trim(), "	application/vnd.fsc.weblaunch	".trim());
		map.put("	.fnc	".trim(), "	application/vnd.frogans.fnc	".trim());
		map.put("	.ltf	".trim(), "	application/vnd.frogans.ltf	".trim());
		map.put("	.ddd	".trim(), "	application/vnd.fujixerox.ddd	".trim());
		map.put("	.xdw	".trim(), "	application/vnd.fujixerox.docuworks	".trim());
		map.put("	.xbd	".trim(), "	application/vnd.fujixerox.docuworks.binder	".trim());
		map.put("	.oas	".trim(), "	application/vnd.fujitsu.oasys	".trim());
		map.put("	.oa2	".trim(), "	application/vnd.fujitsu.oasys2	".trim());
		map.put("	.oa3	".trim(), "	application/vnd.fujitsu.oasys3	".trim());
		map.put("	.fg5	".trim(), "	application/vnd.fujitsu.oasysgp	".trim());
		map.put("	.bh2	".trim(), "	application/vnd.fujitsu.oasysprs	".trim());
		map.put("	.spl	".trim(), "	application/x-futuresplash	".trim());
		map.put("	.fzs	".trim(), "	application/vnd.fuzzysheet	".trim());
		map.put("	.g3	".trim(), "	image/g3fax	".trim());
		map.put("	.gmx	".trim(), "	application/vnd.gmx	".trim());
		map.put("	.gtw	".trim(), "	model/vnd.gtw	".trim());
		map.put("	.txd	".trim(), "	application/vnd.genomatix.tuxedo	".trim());
		map.put("	.ggb	".trim(), "	application/vnd.geogebra.file	".trim());
		map.put("	.ggt	".trim(), "	application/vnd.geogebra.tool	".trim());
		map.put("	.gdl	".trim(), "	model/vnd.gdl	".trim());
		map.put("	.gex	".trim(), "	application/vnd.geometry-explorer	".trim());
		map.put("	.gxt	".trim(), "	application/vnd.geonext	".trim());
		map.put("	.g2w	".trim(), "	application/vnd.geoplan	".trim());
		map.put("	.g3w	".trim(), "	application/vnd.geospace	".trim());
		map.put("	.gsf	".trim(), "	application/x-font-ghostscript	".trim());
		map.put("	.bdf	".trim(), "	application/x-font-bdf	".trim());
		map.put("	.gtar	".trim(), "	application/x-gtar	".trim());
		map.put("	.texinfo	".trim(), "	application/x-texinfo	".trim());
		map.put("	.gnumeric	".trim(), "	application/x-gnumeric	".trim());
		map.put("	.kml	".trim(), "	application/vnd.google-earth.kml+xml	".trim());
		map.put("	.kmz	".trim(), "	application/vnd.google-earth.kmz	".trim());
		map.put("	.gqf	".trim(), "	application/vnd.grafeq	".trim());
		map.put("	.gif	".trim(), "	image/gif	".trim());
		map.put("	.gv	".trim(), "	text/vnd.graphviz	".trim());
		map.put("	.gac	".trim(), "	application/vnd.groove-account	".trim());
		map.put("	.ghf	".trim(), "	application/vnd.groove-help	".trim());
		map.put("	.gim	".trim(), "	application/vnd.groove-identity-message	".trim());
		map.put("	.grv	".trim(), "	application/vnd.groove-injector	".trim());
		map.put("	.gtm	".trim(), "	application/vnd.groove-tool-message	".trim());
		map.put("	.tpl	".trim(), "	application/vnd.groove-tool-template	".trim());
		map.put("	.vcg	".trim(), "	application/vnd.groove-vcard	".trim());
		map.put("	.h261	".trim(), "	video/h261	".trim());
		map.put("	.h263	".trim(), "	video/h263	".trim());
		map.put("	.h264	".trim(), "	video/h264	".trim());
		map.put("	.hpid	".trim(), "	application/vnd.hp-hpid	".trim());
		map.put("	.hps	".trim(), "	application/vnd.hp-hps	".trim());
		map.put("	.hdf	".trim(), "	application/x-hdf	".trim());
		map.put("	.rip	".trim(), "	audio/vnd.rip	".trim());
		map.put("	.hbci	".trim(), "	application/vnd.hbci	".trim());
		map.put("	.jlt	".trim(), "	application/vnd.hp-jlyt	".trim());
		map.put("	.pcl	".trim(), "	application/vnd.hp-pcl	".trim());
		map.put("	.hpgl	".trim(), "	application/vnd.hp-hpgl	".trim());
		map.put("	.hvs	".trim(), "	application/vnd.yamaha.hv-script	".trim());
		map.put("	.hvd	".trim(), "	application/vnd.yamaha.hv-dic	".trim());
		map.put("	.hvp	".trim(), "	application/vnd.yamaha.hv-voice	".trim());
		map.put("	.sfd-hdstx	".trim(), "	application/vnd.hydrostatix.sof-data	".trim());
		map.put("	.stk	".trim(), "	application/hyperstudio	".trim());
		map.put("	.hal	".trim(), "	application/vnd.hal+xml	".trim());
		map.put("	.html	".trim(), "	text/html	".trim());
		map.put("	.irm	".trim(), "	application/vnd.ibm.rights-management	".trim());
		map.put("	.sc	".trim(), "	application/vnd.ibm.secure-container	".trim());
		map.put("	.ics	".trim(), "	text/calendar	".trim());
		map.put("	.icc	".trim(), "	application/vnd.iccprofile	".trim());
		map.put("	.ico	".trim(), "	image/x-icon	".trim());
		map.put("	.igl	".trim(), "	application/vnd.igloader	".trim());
		map.put("	.ief	".trim(), "	image/ief	".trim());
		map.put("	.ivp	".trim(), "	application/vnd.immervision-ivp	".trim());
		map.put("	.ivu	".trim(), "	application/vnd.immervision-ivu	".trim());
		map.put("	.rif	".trim(), "	application/reginfo+xml	".trim());
		map.put("	.3dml	".trim(), "	text/vnd.in3d.3dml	".trim());
		map.put("	.spot	".trim(), "	text/vnd.in3d.spot	".trim());
		map.put("	.igs	".trim(), "	model/iges	".trim());
		map.put("	.i2g	".trim(), "	application/vnd.intergeo	".trim());
		map.put("	.cdy	".trim(), "	application/vnd.cinderella	".trim());
		map.put("	.xpw	".trim(), "	application/vnd.intercon.formnet	".trim());
		map.put("	.fcs	".trim(), "	application/vnd.isac.fcs	".trim());
		map.put("	.ipfix	".trim(), "	application/ipfix	".trim());
		map.put("	.cer	".trim(), "	application/pkix-cert	".trim());
		map.put("	.pki	".trim(), "	application/pkixcmp	".trim());
		map.put("	.crl	".trim(), "	application/pkix-crl	".trim());
		map.put("	.pkipath	".trim(), "	application/pkix-pkipath	".trim());
		map.put("	.igm	".trim(), "	application/vnd.insors.igm	".trim());
		map.put("	.rcprofile	".trim(), "	application/vnd.ipunplugged.rcprofile	".trim());
		map.put("	.irp	".trim(), "	application/vnd.irepository.package+xml	".trim());
		map.put("	.jad	".trim(), "	text/vnd.sun.j2me.app-descriptor	".trim());
		map.put("	.jar	".trim(), "	application/java-archive	".trim());
		map.put("	.class	".trim(), "	application/java-vm	".trim());
		map.put("	.jnlp	".trim(), "	application/x-java-jnlp-file	".trim());
		map.put("	.ser	".trim(), "	application/java-serialized-object	".trim());
		map.put("	.java	".trim(), "	text/x-java-source,java	".trim());
		map.put("	.js	".trim(), "	application/javascript	".trim());
		map.put("	.json	".trim(), "	application/json	".trim());
		map.put("	.joda	".trim(), "	application/vnd.joost.joda-archive	".trim());
		map.put("	.jpm	".trim(), "	video/jpm	".trim());
		map.put("	.jpeg, .jpg	".trim(), "	image/jpeg	".trim());
		map.put("	.jpgv	".trim(), "	video/jpeg	".trim());
		map.put("	.ktz	".trim(), "	application/vnd.kahootz	".trim());
		map.put("	.mmd	".trim(), "	application/vnd.chipnuts.karaoke-mmd	".trim());
		map.put("	.karbon	".trim(), "	application/vnd.kde.karbon	".trim());
		map.put("	.chrt	".trim(), "	application/vnd.kde.kchart	".trim());
		map.put("	.kfo	".trim(), "	application/vnd.kde.kformula	".trim());
		map.put("	.flw	".trim(), "	application/vnd.kde.kivio	".trim());
		map.put("	.kon	".trim(), "	application/vnd.kde.kontour	".trim());
		map.put("	.kpr	".trim(), "	application/vnd.kde.kpresenter	".trim());
		map.put("	.ksp	".trim(), "	application/vnd.kde.kspread	".trim());
		map.put("	.kwd	".trim(), "	application/vnd.kde.kword	".trim());
		map.put("	.htke	".trim(), "	application/vnd.kenameaapp	".trim());
		map.put("	.kia	".trim(), "	application/vnd.kidspiration	".trim());
		map.put("	.kne	".trim(), "	application/vnd.kinar	".trim());
		map.put("	.sse	".trim(), "	application/vnd.kodak-descriptor	".trim());
		map.put("	.lasxml	".trim(), "	application/vnd.las.las+xml	".trim());
		map.put("	.latex	".trim(), "	application/x-latex	".trim());
		map.put("	.lbd	".trim(), "	application/vnd.llamagraphics.life-balance.desktop	".trim());
		map.put("	.lbe	".trim(), "	application/vnd.llamagraphics.life-balance.exchange+xml	".trim());
		map.put("	.jam	".trim(), "	application/vnd.jam	".trim());
		map.put("	0.123	".trim(), "	application/vnd.lotus-1-2-3	".trim());
		map.put("	.apr	".trim(), "	application/vnd.lotus-approach	".trim());
		map.put("	.pre	".trim(), "	application/vnd.lotus-freelance	".trim());
		map.put("	.nsf	".trim(), "	application/vnd.lotus-notes	".trim());
		map.put("	.org	".trim(), "	application/vnd.lotus-organizer	".trim());
		map.put("	.scm	".trim(), "	application/vnd.lotus-screencam	".trim());
		map.put("	.lwp	".trim(), "	application/vnd.lotus-wordpro	".trim());
		map.put("	.lvp	".trim(), "	audio/vnd.lucent.voice	".trim());
		map.put("	.m3u	".trim(), "	audio/x-mpegurl	".trim());
		map.put("	.m4v	".trim(), "	video/x-m4v	".trim());
		map.put("	.hqx	".trim(), "	application/mac-binhex40	".trim());
		map.put("	.portpkg	".trim(), "	application/vnd.macports.portpkg	".trim());
		map.put("	.mgp	".trim(), "	application/vnd.osgeo.mapguide.package	".trim());
		map.put("	.mrc	".trim(), "	application/marc	".trim());
		map.put("	.mrcx	".trim(), "	application/marcxml+xml	".trim());
		map.put("	.mxf	".trim(), "	application/mxf	".trim());
		map.put("	.nbp	".trim(), "	application/vnd.wolfram.player	".trim());
		map.put("	.ma	".trim(), "	application/mathematica	".trim());
		map.put("	.mathml	".trim(), "	application/mathml+xml	".trim());
		map.put("	.mbox	".trim(), "	application/mbox	".trim());
		map.put("	.mc1	".trim(), "	application/vnd.medcalcdata	".trim());
		map.put("	.mscml	".trim(), "	application/mediaservercontrol+xml	".trim());
		map.put("	.cdkey	".trim(), "	application/vnd.mediastation.cdkey	".trim());
		map.put("	.mwf	".trim(), "	application/vnd.mfer	".trim());
		map.put("	.mfm	".trim(), "	application/vnd.mfmp	".trim());
		map.put("	.msh	".trim(), "	model/mesh	".trim());
		map.put("	.mads	".trim(), "	application/mads+xml	".trim());
		map.put("	.mets	".trim(), "	application/mets+xml	".trim());
		map.put("	.mods	".trim(), "	application/mods+xml	".trim());
		map.put("	.meta4	".trim(), "	application/metalink4+xml	".trim());
		map.put("	.potm	".trim(), "	application/vnd.ms-powerpoint.template.macroenabled.12	".trim());
		map.put("	.docm	".trim(), "	application/vnd.ms-word.document.macroenabled.12	".trim());
		map.put("	.dotm	".trim(), "	application/vnd.ms-word.template.macroenabled.12	".trim());
		map.put("	.mcd	".trim(), "	application/vnd.mcd	".trim());
		map.put("	.flo	".trim(), "	application/vnd.micrografx.flo	".trim());
		map.put("	.igx	".trim(), "	application/vnd.micrografx.igx	".trim());
		map.put("	.es3	".trim(), "	application/vnd.eszigno3+xml	".trim());
		map.put("	.mdb	".trim(), "	application/x-msaccess	".trim());
		map.put("	.asf	".trim(), "	video/x-ms-asf	".trim());
		map.put("	.exe	".trim(), "	application/x-msdownload	".trim());
		map.put("	.cil	".trim(), "	application/vnd.ms-artgalry	".trim());
		map.put("	.cab	".trim(), "	application/vnd.ms-cab-compressed	".trim());
		map.put("	.ims	".trim(), "	application/vnd.ms-ims	".trim());
		map.put("	.application	".trim(), "	application/x-ms-application	".trim());
		map.put("	.clp	".trim(), "	application/x-msclip	".trim());
		map.put("	.mdi	".trim(), "	image/vnd.ms-modi	".trim());
		map.put("	.eot	".trim(), "	application/vnd.ms-fontobject	".trim());
		map.put("	.xls	".trim(), "	application/vnd.ms-excel	".trim());
		map.put("	.xlam	".trim(), "	application/vnd.ms-excel.addin.macroenabled.12	".trim());
		map.put("	.xlsb	".trim(), "	application/vnd.ms-excel.sheet.binary.macroenabled.12	".trim());
		map.put("	.xltm	".trim(), "	application/vnd.ms-excel.template.macroenabled.12	".trim());
		map.put("	.xlsm	".trim(), "	application/vnd.ms-excel.sheet.macroenabled.12	".trim());
		map.put("	.chm	".trim(), "	application/vnd.ms-htmlhelp	".trim());
		map.put("	.crd	".trim(), "	application/x-mscardfile	".trim());
		map.put("	.lrm	".trim(), "	application/vnd.ms-lrm	".trim());
		map.put("	.mvb	".trim(), "	application/x-msmediaview	".trim());
		map.put("	.mny	".trim(), "	application/x-msmoney	".trim());
		map.put("	.pptx	".trim(), "	application/vnd.openxmlformats-officedocument.presentationml.presentation	".trim());
		map.put("	.sldx	".trim(), "	application/vnd.openxmlformats-officedocument.presentationml.slide	".trim());
		map.put("	.ppsx	".trim(), "	application/vnd.openxmlformats-officedocument.presentationml.slideshow	".trim());
		map.put("	.potx	".trim(), "	application/vnd.openxmlformats-officedocument.presentationml.template	".trim());
		map.put("	.xlsx	".trim(), "	application/vnd.openxmlformats-officedocument.spreadsheetml.sheet	".trim());
		map.put("	.xltx	".trim(), "	application/vnd.openxmlformats-officedocument.spreadsheetml.template	".trim());
		map.put("	.docx	".trim(), "	application/vnd.openxmlformats-officedocument.wordprocessingml.document	".trim());
		map.put("	.dotx	".trim(), "	application/vnd.openxmlformats-officedocument.wordprocessingml.template	".trim());
		map.put("	.obd	".trim(), "	application/x-msbinder	".trim());
		map.put("	.thmx	".trim(), "	application/vnd.ms-officetheme	".trim());
		map.put("	.onetoc	".trim(), "	application/onenote	".trim());
		map.put("	.pya	".trim(), "	audio/vnd.ms-playready.media.pya	".trim());
		map.put("	.pyv	".trim(), "	video/vnd.ms-playready.media.pyv	".trim());
		map.put("	.ppt	".trim(), "	application/vnd.ms-powerpoint	".trim());
		map.put("	.ppam	".trim(), "	application/vnd.ms-powerpoint.addin.macroenabled.12	".trim());
		map.put("	.sldm	".trim(), "	application/vnd.ms-powerpoint.slide.macroenabled.12	".trim());
		map.put("	.pptm	".trim(), "	application/vnd.ms-powerpoint.presentation.macroenabled.12	".trim());
		map.put("	.ppsm	".trim(), "	application/vnd.ms-powerpoint.slideshow.macroenabled.12	".trim());
		map.put("	.mpp	".trim(), "	application/vnd.ms-project	".trim());
		map.put("	.pub	".trim(), "	application/x-mspublisher	".trim());
		map.put("	.scd	".trim(), "	application/x-msschedule	".trim());
		map.put("	.xap	".trim(), "	application/x-silverlight-app	".trim());
		map.put("	.stl	".trim(), "	application/vnd.ms-pki.stl	".trim());
		map.put("	.cat	".trim(), "	application/vnd.ms-pki.seccat	".trim());
		map.put("	.vsd	".trim(), "	application/vnd.visio	".trim());
		map.put("	.wm	".trim(), "	video/x-ms-wm	".trim());
		map.put("	.wma	".trim(), "	audio/x-ms-wma	".trim());
		map.put("	.wax	".trim(), "	audio/x-ms-wax	".trim());
		map.put("	.wmx	".trim(), "	video/x-ms-wmx	".trim());
		map.put("	.wmd	".trim(), "	application/x-ms-wmd	".trim());
		map.put("	.wpl	".trim(), "	application/vnd.ms-wpl	".trim());
		map.put("	.wmz	".trim(), "	application/x-ms-wmz	".trim());
		map.put("	.wmv	".trim(), "	video/x-ms-wmv	".trim());
		map.put("	.wvx	".trim(), "	video/x-ms-wvx	".trim());
		map.put("	.wmf	".trim(), "	application/x-msmetafile	".trim());
		map.put("	.trm	".trim(), "	application/x-msterminal	".trim());
		map.put("	.doc	".trim(), "	application/msword	".trim());
		map.put("	.wri	".trim(), "	application/x-mswrite	".trim());
		map.put("	.wps	".trim(), "	application/vnd.ms-works	".trim());
		map.put("	.xbap	".trim(), "	application/x-ms-xbap	".trim());
		map.put("	.xps	".trim(), "	application/vnd.ms-xpsdocument	".trim());
		map.put("	.mid	".trim(), "	audio/midi	".trim());
		map.put("	.mpy	".trim(), "	application/vnd.ibm.minipay	".trim());
		map.put("	.afp	".trim(), "	application/vnd.ibm.modcap	".trim());
		map.put("	.rms	".trim(), "	application/vnd.jcp.javame.midlet-rms	".trim());
		map.put("	.tmo	".trim(), "	application/vnd.tmobile-livetv	".trim());
		map.put("	.prc	".trim(), "	application/x-mobipocket-ebook	".trim());
		map.put("	.mbk	".trim(), "	application/vnd.mobius.mbk	".trim());
		map.put("	.dis	".trim(), "	application/vnd.mobius.dis	".trim());
		map.put("	.plc	".trim(), "	application/vnd.mobius.plc	".trim());
		map.put("	.mqy	".trim(), "	application/vnd.mobius.mqy	".trim());
		map.put("	.msl	".trim(), "	application/vnd.mobius.msl	".trim());
		map.put("	.txf	".trim(), "	application/vnd.mobius.txf	".trim());
		map.put("	.daf	".trim(), "	application/vnd.mobius.daf	".trim());
		map.put("	.fly	".trim(), "	text/vnd.fly	".trim());
		map.put("	.mpc	".trim(), "	application/vnd.mophun.certificate	".trim());
		map.put("	.mpn	".trim(), "	application/vnd.mophun.application	".trim());
		map.put("	.mj2	".trim(), "	video/mj2	".trim());
		map.put("	.mpga	".trim(), "	audio/mpeg	".trim());
		map.put("	.mxu	".trim(), "	video/vnd.mpegurl	".trim());
		map.put("	.mpeg	".trim(), "	video/mpeg	".trim());
		map.put("	.m21	".trim(), "	application/mp21	".trim());
		map.put("	.mp4a	".trim(), "	audio/mp4	".trim());
		map.put("	.mp4	".trim(), "	video/mp4	".trim());
		map.put("	.mp4	".trim(), "	application/mp4	".trim());
		map.put("	.m3u8	".trim(), "	application/vnd.apple.mpegurl	".trim());
		map.put("	.mus	".trim(), "	application/vnd.musician	".trim());
		map.put("	.msty	".trim(), "	application/vnd.muvee.style	".trim());
		map.put("	.mxml	".trim(), "	application/xv+xml	".trim());
		map.put("	.ngdat	".trim(), "	application/vnd.nokia.n-gage.data	".trim());
		map.put("	.n-gage	".trim(), "	application/vnd.nokia.n-gage.symbian.install	".trim());
		map.put("	.ncx	".trim(), "	application/x-dtbncx+xml	".trim());
		map.put("	.nc	".trim(), "	application/x-netcdf	".trim());
		map.put("	.nlu	".trim(), "	application/vnd.neurolanguage.nlu	".trim());
		map.put("	.dna	".trim(), "	application/vnd.dna	".trim());
		map.put("	.nnd	".trim(), "	application/vnd.noblenet-directory	".trim());
		map.put("	.nns	".trim(), "	application/vnd.noblenet-sealer	".trim());
		map.put("	.nnw	".trim(), "	application/vnd.noblenet-web	".trim());
		map.put("	.rpst	".trim(), "	application/vnd.nokia.radio-preset	".trim());
		map.put("	.rpss	".trim(), "	application/vnd.nokia.radio-presets	".trim());
		map.put("	.n3	".trim(), "	text/n3	".trim());
		map.put("	.edm	".trim(), "	application/vnd.novadigm.edm	".trim());
		map.put("	.edx	".trim(), "	application/vnd.novadigm.edx	".trim());
		map.put("	.ext	".trim(), "	application/vnd.novadigm.ext	".trim());
		map.put("	.gph	".trim(), "	application/vnd.flographit	".trim());
		map.put("	.ecelp4800	".trim(), "	audio/vnd.nuera.ecelp4800	".trim());
		map.put("	.ecelp7470	".trim(), "	audio/vnd.nuera.ecelp7470	".trim());
		map.put("	.ecelp9600	".trim(), "	audio/vnd.nuera.ecelp9600	".trim());
		map.put("	.oda	".trim(), "	application/oda	".trim());
		map.put("	.ogx	".trim(), "	application/ogg	".trim());
		map.put("	.oga	".trim(), "	audio/ogg	".trim());
		map.put("	.ogv	".trim(), "	video/ogg	".trim());
		map.put("	.dd2	".trim(), "	application/vnd.oma.dd2+xml	".trim());
		map.put("	.oth	".trim(), "	application/vnd.oasis.opendocument.text-web	".trim());
		map.put("	.opf	".trim(), "	application/oebps-package+xml	".trim());
		map.put("	.qbo	".trim(), "	application/vnd.intu.qbo	".trim());
		map.put("	.oxt	".trim(), "	application/vnd.openofficeorg.extension	".trim());
		map.put("	.osf	".trim(), "	application/vnd.yamaha.openscoreformat	".trim());
		map.put("	.weba	".trim(), "	audio/webm	".trim());
		map.put("	.webm	".trim(), "	video/webm	".trim());
		map.put("	.odc	".trim(), "	application/vnd.oasis.opendocument.chart	".trim());
		map.put("	.otc	".trim(), "	application/vnd.oasis.opendocument.chart-template	".trim());
		map.put("	.odb	".trim(), "	application/vnd.oasis.opendocument.database	".trim());
		map.put("	.odf	".trim(), "	application/vnd.oasis.opendocument.formula	".trim());
		map.put("	.odft	".trim(), "	application/vnd.oasis.opendocument.formula-template	".trim());
		map.put("	.odg	".trim(), "	application/vnd.oasis.opendocument.graphics	".trim());
		map.put("	.otg	".trim(), "	application/vnd.oasis.opendocument.graphics-template	".trim());
		map.put("	.odi	".trim(), "	application/vnd.oasis.opendocument.image	".trim());
		map.put("	.oti	".trim(), "	application/vnd.oasis.opendocument.image-template	".trim());
		map.put("	.odp	".trim(), "	application/vnd.oasis.opendocument.presentation	".trim());
		map.put("	.otp	".trim(), "	application/vnd.oasis.opendocument.presentation-template	".trim());
		map.put("	.ods	".trim(), "	application/vnd.oasis.opendocument.spreadsheet	".trim());
		map.put("	.ots	".trim(), "	application/vnd.oasis.opendocument.spreadsheet-template	".trim());
		map.put("	.odt	".trim(), "	application/vnd.oasis.opendocument.text	".trim());
		map.put("	.odm	".trim(), "	application/vnd.oasis.opendocument.text-master	".trim());
		map.put("	.ott	".trim(), "	application/vnd.oasis.opendocument.text-template	".trim());
		map.put("	.ktx	".trim(), "	image/ktx	".trim());
		map.put("	.sxc	".trim(), "	application/vnd.sun.xml.calc	".trim());
		map.put("	.stc	".trim(), "	application/vnd.sun.xml.calc.template	".trim());
		map.put("	.sxd	".trim(), "	application/vnd.sun.xml.draw	".trim());
		map.put("	.std	".trim(), "	application/vnd.sun.xml.draw.template	".trim());
		map.put("	.sxi	".trim(), "	application/vnd.sun.xml.impress	".trim());
		map.put("	.sti	".trim(), "	application/vnd.sun.xml.impress.template	".trim());
		map.put("	.sxm	".trim(), "	application/vnd.sun.xml.math	".trim());
		map.put("	.sxw	".trim(), "	application/vnd.sun.xml.writer	".trim());
		map.put("	.sxg	".trim(), "	application/vnd.sun.xml.writer.global	".trim());
		map.put("	.stw	".trim(), "	application/vnd.sun.xml.writer.template	".trim());
		map.put("	.otf	".trim(), "	application/x-font-otf	".trim());
		map.put("	.osfpvg	".trim(), "	application/vnd.yamaha.openscoreformat.osfpvg+xml	".trim());
		map.put("	.dp	".trim(), "	application/vnd.osgi.dp	".trim());
		map.put("	.pdb	".trim(), "	application/vnd.palm	".trim());
		map.put("	.p	".trim(), "	text/x-pascal	".trim());
		map.put("	.paw	".trim(), "	application/vnd.pawaafile	".trim());
		map.put("	.pclxl	".trim(), "	application/vnd.hp-pclxl	".trim());
		map.put("	.efif	".trim(), "	application/vnd.picsel	".trim());
		map.put("	.pcx	".trim(), "	image/x-pcx	".trim());
		map.put("	.psd	".trim(), "	image/vnd.adobe.photoshop	".trim());
		map.put("	.prf	".trim(), "	application/pics-rules	".trim());
		map.put("	.pic	".trim(), "	image/x-pict	".trim());
		map.put("	.chat	".trim(), "	application/x-chat	".trim());
		map.put("	.p10	".trim(), "	application/pkcs10	".trim());
		map.put("	.p12	".trim(), "	application/x-pkcs12	".trim());
		map.put("	.p7m	".trim(), "	application/pkcs7-mime	".trim());
		map.put("	.p7s	".trim(), "	application/pkcs7-signature	".trim());
		map.put("	.p7r	".trim(), "	application/x-pkcs7-certreqresp	".trim());
		map.put("	.p7b	".trim(), "	application/x-pkcs7-certificates	".trim());
		map.put("	.p8	".trim(), "	application/pkcs8	".trim());
		map.put("	.plf	".trim(), "	application/vnd.pocketlearn	".trim());
		map.put("	.pnm	".trim(), "	image/x-portable-anymap	".trim());
		map.put("	.pbm	".trim(), "	image/x-portable-bitmap	".trim());
		map.put("	.pcf	".trim(), "	application/x-font-pcf	".trim());
		map.put("	.pfr	".trim(), "	application/font-tdpfr	".trim());
		map.put("	.pgn	".trim(), "	application/x-chess-pgn	".trim());
		map.put("	.pgm	".trim(), "	image/x-portable-graymap	".trim());
		map.put("	.png	".trim(), "	image/png	".trim());
		map.put("	.ppm	".trim(), "	image/x-portable-pixmap	".trim());
		map.put("	.pskcxml	".trim(), "	application/pskc+xml	".trim());
		map.put("	.pml	".trim(), "	application/vnd.ctc-posml	".trim());
		map.put("	.ai	".trim(), "	application/postscript	".trim());
		map.put("	.pfa	".trim(), "	application/x-font-type1	".trim());
		map.put("	.pbd	".trim(), "	application/vnd.powerbuilder6	".trim());
		map.put("		".trim(), "	application/pgp-encrypted	".trim());
		map.put("	.pgp	".trim(), "	application/pgp-signature	".trim());
		map.put("	.box	".trim(), "	application/vnd.previewsystems.box	".trim());
		map.put("	.ptid	".trim(), "	application/vnd.pvi.ptid1	".trim());
		map.put("	.pls	".trim(), "	application/pls+xml	".trim());
		map.put("	.str	".trim(), "	application/vnd.pg.format	".trim());
		map.put("	.ei6	".trim(), "	application/vnd.pg.osasli	".trim());
		map.put("	.dsc	".trim(), "	text/prs.lines.tag	".trim());
		map.put("	.psf	".trim(), "	application/x-font-linux-psf	".trim());
		map.put("	.qps	".trim(), "	application/vnd.publishare-delta-tree	".trim());
		map.put("	.wg	".trim(), "	application/vnd.pmi.widget	".trim());
		map.put("	.qxd	".trim(), "	application/vnd.quark.quarkxpress	".trim());
		map.put("	.esf	".trim(), "	application/vnd.epson.esf	".trim());
		map.put("	.msf	".trim(), "	application/vnd.epson.msf	".trim());
		map.put("	.ssf	".trim(), "	application/vnd.epson.ssf	".trim());
		map.put("	.qam	".trim(), "	application/vnd.epson.quickanime	".trim());
		map.put("	.qfx	".trim(), "	application/vnd.intu.qfx	".trim());
		map.put("	.qt	".trim(), "	video/quicktime	".trim());
		map.put("	.rar	".trim(), "	application/x-rar-compressed	".trim());
		map.put("	.ram	".trim(), "	audio/x-pn-realaudio	".trim());
		map.put("	.rmp	".trim(), "	audio/x-pn-realaudio-plugin	".trim());
		map.put("	.rsd	".trim(), "	application/rsd+xml	".trim());
		map.put("	.rm	".trim(), "	application/vnd.rn-realmedia	".trim());
		map.put("	.bed	".trim(), "	application/vnd.realvnc.bed	".trim());
		map.put("	.mxl	".trim(), "	application/vnd.recordare.musicxml	".trim());
		map.put("	.musicxml	".trim(), "	application/vnd.recordare.musicxml+xml	".trim());
		map.put("	.rnc	".trim(), "	application/relax-ng-compact-syntax	".trim());
		map.put("	.rdz	".trim(), "	application/vnd.data-vision.rdz	".trim());
		map.put("	.rdf	".trim(), "	application/rdf+xml	".trim());
		map.put("	.rp9	".trim(), "	application/vnd.cloanto.rp9	".trim());
		map.put("	.jisp	".trim(), "	application/vnd.jisp	".trim());
		map.put("	.rtf	".trim(), "	application/rtf	".trim());
		map.put("	.rtx	".trim(), "	text/richtext	".trim());
		map.put("	.link66	".trim(), "	application/vnd.route66.link66+xml	".trim());
		map.put("	.rss, .xml	".trim(), "	application/rss+xml	".trim());
		map.put("	.shf	".trim(), "	application/shf+xml	".trim());
		map.put("	.st	".trim(), "	application/vnd.sailingtracker.track	".trim());
		map.put("	.svg	".trim(), "	image/svg+xml	".trim());
		map.put("	.sus	".trim(), "	application/vnd.sus-calendar	".trim());
		map.put("	.sru	".trim(), "	application/sru+xml	".trim());
		map.put("	.setpay	".trim(), "	application/set-payment-initiation	".trim());
		map.put("	.setreg	".trim(), "	application/set-registration-initiation	".trim());
		map.put("	.sema	".trim(), "	application/vnd.sema	".trim());
		map.put("	.semd	".trim(), "	application/vnd.semd	".trim());
		map.put("	.semf	".trim(), "	application/vnd.semf	".trim());
		map.put("	.see	".trim(), "	application/vnd.seemail	".trim());
		map.put("	.snf	".trim(), "	application/x-font-snf	".trim());
		map.put("	.spq	".trim(), "	application/scvp-vp-request	".trim());
		map.put("	.spp	".trim(), "	application/scvp-vp-response	".trim());
		map.put("	.scq	".trim(), "	application/scvp-cv-request	".trim());
		map.put("	.scs	".trim(), "	application/scvp-cv-response	".trim());
		map.put("	.sdp	".trim(), "	application/sdp	".trim());
		map.put("	.etx	".trim(), "	text/x-setext	".trim());
		map.put("	.movie	".trim(), "	video/x-sgi-movie	".trim());
		map.put("	.ifm	".trim(), "	application/vnd.shana.informed.formdata	".trim());
		map.put("	.itp	".trim(), "	application/vnd.shana.informed.formtemplate	".trim());
		map.put("	.iif	".trim(), "	application/vnd.shana.informed.interchange	".trim());
		map.put("	.ipk	".trim(), "	application/vnd.shana.informed.package	".trim());
		map.put("	.tfi	".trim(), "	application/thraud+xml	".trim());
		map.put("	.shar	".trim(), "	application/x-shar	".trim());
		map.put("	.rgb	".trim(), "	image/x-rgb	".trim());
		map.put("	.slt	".trim(), "	application/vnd.epson.salt	".trim());
		map.put("	.aso	".trim(), "	application/vnd.accpac.simply.aso	".trim());
		map.put("	.imp	".trim(), "	application/vnd.accpac.simply.imp	".trim());
		map.put("	.twd	".trim(), "	application/vnd.simtech-mindmapper	".trim());
		map.put("	.csp	".trim(), "	application/vnd.commonspace	".trim());
		map.put("	.saf	".trim(), "	application/vnd.yamaha.smaf-audio	".trim());
		map.put("	.mmf	".trim(), "	application/vnd.smaf	".trim());
		map.put("	.spf	".trim(), "	application/vnd.yamaha.smaf-phrase	".trim());
		map.put("	.teacher	".trim(), "	application/vnd.smart.teacher	".trim());
		map.put("	.svd	".trim(), "	application/vnd.svd	".trim());
		map.put("	.rq	".trim(), "	application/sparql-query	".trim());
		map.put("	.srx	".trim(), "	application/sparql-results+xml	".trim());
		map.put("	.gram	".trim(), "	application/srgs	".trim());
		map.put("	.grxml	".trim(), "	application/srgs+xml	".trim());
		map.put("	.ssml	".trim(), "	application/ssml+xml	".trim());
		map.put("	.skp	".trim(), "	application/vnd.koan	".trim());
		map.put("	.sgml	".trim(), "	text/sgml	".trim());
		map.put("	.sdc	".trim(), "	application/vnd.stardivision.calc	".trim());
		map.put("	.sda	".trim(), "	application/vnd.stardivision.draw	".trim());
		map.put("	.sdd	".trim(), "	application/vnd.stardivision.impress	".trim());
		map.put("	.smf	".trim(), "	application/vnd.stardivision.math	".trim());
		map.put("	.sdw	".trim(), "	application/vnd.stardivision.writer	".trim());
		map.put("	.sgl	".trim(), "	application/vnd.stardivision.writer-global	".trim());
		map.put("	.sm	".trim(), "	application/vnd.stepmania.stepchart	".trim());
		map.put("	.sit	".trim(), "	application/x-stuffit	".trim());
		map.put("	.sitx	".trim(), "	application/x-stuffitx	".trim());
		map.put("	.sdkm	".trim(), "	application/vnd.solent.sdkm+xml	".trim());
		map.put("	.xo	".trim(), "	application/vnd.olpc-sugar	".trim());
		map.put("	.au	".trim(), "	audio/basic	".trim());
		map.put("	.wqd	".trim(), "	application/vnd.wqd	".trim());
		map.put("	.sis	".trim(), "	application/vnd.symbian.install	".trim());
		map.put("	.smi	".trim(), "	application/smil+xml	".trim());
		map.put("	.xsm	".trim(), "	application/vnd.syncml+xml	".trim());
		map.put("	.bdm	".trim(), "	application/vnd.syncml.dm+wbxml	".trim());
		map.put("	.xdm	".trim(), "	application/vnd.syncml.dm+xml	".trim());
		map.put("	.sv4cpio	".trim(), "	application/x-sv4cpio	".trim());
		map.put("	.sv4crc	".trim(), "	application/x-sv4crc	".trim());
		map.put("	.sbml	".trim(), "	application/sbml+xml	".trim());
		map.put("	.tsv	".trim(), "	text/tab-separated-values	".trim());
		map.put("	.tiff	".trim(), "	image/tiff	".trim());
		map.put("	.tao	".trim(), "	application/vnd.tao.intent-module-archive	".trim());
		map.put("	.tar	".trim(), "	application/x-tar	".trim());
		map.put("	.tcl	".trim(), "	application/x-tcl	".trim());
		map.put("	.tex	".trim(), "	application/x-tex	".trim());
		map.put("	.tfm	".trim(), "	application/x-tex-tfm	".trim());
		map.put("	.tei	".trim(), "	application/tei+xml	".trim());
		map.put("	.txt	".trim(), "	text/plain	".trim());
		map.put("	.dxp	".trim(), "	application/vnd.spotfire.dxp	".trim());
		map.put("	.sfs	".trim(), "	application/vnd.spotfire.sfs	".trim());
		map.put("	.tsd	".trim(), "	application/timestamped-data	".trim());
		map.put("	.tpt	".trim(), "	application/vnd.trid.tpt	".trim());
		map.put("	.mxs	".trim(), "	application/vnd.triscape.mxs	".trim());
		map.put("	.t	".trim(), "	text/troff	".trim());
		map.put("	.tra	".trim(), "	application/vnd.trueapp	".trim());
		map.put("	.ttf	".trim(), "	application/x-font-ttf	".trim());
		map.put("	.ttl	".trim(), "	text/turtle	".trim());
		map.put("	.umj	".trim(), "	application/vnd.umajin	".trim());
		map.put("	.uoml	".trim(), "	application/vnd.uoml+xml	".trim());
		map.put("	.unityweb	".trim(), "	application/vnd.unity	".trim());
		map.put("	.ufd	".trim(), "	application/vnd.ufdl	".trim());
		map.put("	.uri	".trim(), "	text/uri-list	".trim());
		map.put("	.utz	".trim(), "	application/vnd.uiq.theme	".trim());
		map.put("	.ustar	".trim(), "	application/x-ustar	".trim());
		map.put("	.uu	".trim(), "	text/x-uuencode	".trim());
		map.put("	.vcs	".trim(), "	text/x-vcalendar	".trim());
		map.put("	.vcf	".trim(), "	text/x-vcard	".trim());
		map.put("	.vcd	".trim(), "	application/x-cdlink	".trim());
		map.put("	.vsf	".trim(), "	application/vnd.vsf	".trim());
		map.put("	.wrl	".trim(), "	model/vrml	".trim());
		map.put("	.vcx	".trim(), "	application/vnd.vcx	".trim());
		map.put("	.mts	".trim(), "	model/vnd.mts	".trim());
		map.put("	.vtu	".trim(), "	model/vnd.vtu	".trim());
		map.put("	.vis	".trim(), "	application/vnd.visionary	".trim());
		map.put("	.viv	".trim(), "	video/vnd.vivo	".trim());
		map.put("	.ccxml	".trim(), "	application/ccxml+xml,	".trim());
		map.put("	.vxml	".trim(), "	application/voicexml+xml	".trim());
		map.put("	.src	".trim(), "	application/x-wais-source	".trim());
		map.put("	.wbxml	".trim(), "	application/vnd.wap.wbxml	".trim());
		map.put("	.wbmp	".trim(), "	image/vnd.wap.wbmp	".trim());
		map.put("	.wav	".trim(), "	audio/x-wav	".trim());
		map.put("	.davmount	".trim(), "	application/davmount+xml	".trim());
		map.put("	.woff	".trim(), "	application/x-font-woff	".trim());
		map.put("	.wspolicy	".trim(), "	application/wspolicy+xml	".trim());
		map.put("	.webp	".trim(), "	image/webp	".trim());
		map.put("	.wtb	".trim(), "	application/vnd.webturbo	".trim());
		map.put("	.wgt	".trim(), "	application/widget	".trim());
		map.put("	.hlp	".trim(), "	application/winhlp	".trim());
		map.put("	.wml	".trim(), "	text/vnd.wap.wml	".trim());
		map.put("	.wmls	".trim(), "	text/vnd.wap.wmlscript	".trim());
		map.put("	.wmlsc	".trim(), "	application/vnd.wap.wmlscriptc	".trim());
		map.put("	.wpd	".trim(), "	application/vnd.wordperfect	".trim());
		map.put("	.stf	".trim(), "	application/vnd.wt.stf	".trim());
		map.put("	.wsdl	".trim(), "	application/wsdl+xml	".trim());
		map.put("	.xbm	".trim(), "	image/x-xbitmap	".trim());
		map.put("	.xpm	".trim(), "	image/x-xpixmap	".trim());
		map.put("	.xwd	".trim(), "	image/x-xwindowdump	".trim());
		map.put("	.der	".trim(), "	application/x-x509-ca-cert	".trim());
		map.put("	.fig	".trim(), "	application/x-xfig	".trim());
		map.put("	.xhtml	".trim(), "	application/xhtml+xml	".trim());
		map.put("	.xml	".trim(), "	application/xml	".trim());
		map.put("	.xdf	".trim(), "	application/xcap-diff+xml	".trim());
		map.put("	.xenc	".trim(), "	application/xenc+xml	".trim());
		map.put("	.xer	".trim(), "	application/patch-ops-error+xml	".trim());
		map.put("	.rl	".trim(), "	application/resource-lists+xml	".trim());
		map.put("	.rs	".trim(), "	application/rls-services+xml	".trim());
		map.put("	.rld	".trim(), "	application/resource-lists-diff+xml	".trim());
		map.put("	.xslt	".trim(), "	application/xslt+xml	".trim());
		map.put("	.xop	".trim(), "	application/xop+xml	".trim());
		map.put("	.xpi	".trim(), "	application/x-xpinstall	".trim());
		map.put("	.xspf	".trim(), "	application/xspf+xml	".trim());
		map.put("	.xul	".trim(), "	application/vnd.mozilla.xul+xml	".trim());
		map.put("	.xyz	".trim(), "	chemical/x-xyz	".trim());
		map.put("	.yang	".trim(), "	application/yang	".trim());
		map.put("	.yin	".trim(), "	application/yin+xml	".trim());
		map.put("	.zir	".trim(), "	application/vnd.zul	".trim());
		map.put("	.zip	".trim(), "	application/zip	".trim());
		map.put("	.zmm	".trim(), "	application/vnd.handheld-entertainment+xml	".trim());
		map.put("	.zaz	".trim(), "	application/vnd.zzazz.deck+xml	".trim());
	}
}
